<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/1/2
 * Time: 21:13
 */

namespace Home\Controller;


use Common\Controller\HomeController;
use Common\Model\UserModel;
use Think\Verify;

class LoginController extends HomeController
{
	/**
	 * 首页 登录页面
	 */
	public function index(){
		$usernames = (new UserModel())->getField('username',true);
//		dd($usernames);
//		dd($_SESSION);
		if (IS_POST){
			//检验用户名
			dd($_POST);

			if (!in_array($_POST['username'],$usernames)){
				$this->error('用户名不存在');exit;
			}
			$user = (new UserModel())->where("username='{$_POST['username']}'")->find();
			dd($user);
			//检验密码
			if ($_POST['password']!=$user['password']){
				$this->error('密码不正确');exit;
			}
			//检验验证码
			if (!$this->check_verify($_POST['code'])){
				$this->error('验证码不正确');
				exit;
			}
			// //保存登录信息于session中
			$_SESSION['uid'] = $user['uid'];
			$_SESSION['uname'] = $user['username'];
			$this->success('登录成功',U('Home/Cart/index'));
		}
		$this->display('login');
	}

	/**
	 * 注册页面
	 */
	public function register(){
		$usernames = (new UserModel())->getField('username',true);
//		dd($usernames);
		if (IS_POST){
			//检验用户名
			if (in_array($_POST['username'],$usernames)){
                 $this->error('用户名已存在');exit;
			}
			//检验密码
			if ($_POST['password']!=$_POST['rpassword']){
				$this->error('两次密码不相同');exit;
			}
			//检验验证码
			if (!$this->check_verify($_POST['code'])){
				$this->error('验证码不正确');
				exit;
			}
			(new UserModel())->add($_POST);
			$this->success('注册成功');
		}

		$this->display();
	}
	/**
	 * 显示验证吗
	 */
	public function verify(){
		$config =    array(
			'fontSize'    =>    100,    // 验证码字体大小
			'length'      =>    3,     // 验证码位数
			'useNoise'    =>    false, // 关闭验证码杂点
			'expire'      =>    10,   //验证码的有效期（秒）
			'useImgBg'   =>     true,
		);
		$Verify = new Verify($config);
		$Verify->entry();
	}
	/**
	 * 验证吗验证
	 * 检测输入的验证码是否正确
	 * $code为用户输入的验证码字符串
	 */
	public function check_verify($code, $id = ''){
		$verify = new Verify();
		return $verify->check($code, $id);
	}
}